# _*_coding:utf-8 _*_
# @ Time　　 : 2022/12/12 16:55
# @ Author　 : 郭鑫垚
# @ class　  : 数据201

import datetime
import pandas as pd
import numpy as np

if __name__ == '__main__':
    # 读取数据
    pd_data = pd.read_excel('../数据/二手车数据.xlsx')
    # print(pd_data.dtypes)
    # print(pd_data.info)

    # 单元格的空白视为信息缺失，删除
    data = pd.DataFrame(pd_data.dropna(axis=0, how='any'))  # 单元格为空即删除 axis:0或'index'，表示按行删除；1或'columns'，表示按列删除。
    # how：筛选方式。‘any’，表示该行/列只要有一个以上的空值，就删除该行/列；‘all’，表示该行/列全部都为空值，就删除该行/列。
    # 完全展示（数据量较小时使用）
    pd.set_option('display.max_rows', 1000)  # 最多展示1000行
    pd.set_option('display.max_columns', 10)  # 最多展示10列
    # print(data.head())

    # 计算车龄 因现在刚好12月，所有用年份相减即为车龄
    # 转换为datetime时间格式便于计算, 年份
    data['上牌年月'] = pd.to_datetime(data['上牌年月'], format="%Y年%m月")
    now_time = datetime.datetime.today().year
    data['车龄'] = now_time - data['上牌年月'].dt.year
    data['上牌年月'] = data['上牌年月'].dt.strftime('%Y-%m')  # 转换成字符串2022-11格式
    data['上牌年份'] = data['上牌年月'].str[0:4].astype('int')
    # print(data['上牌年份'])
    # print(now_time)
    # print(data.head())

    # 转里程(万公里)数据为float
    data['里程'] = data['里程'].str[0:-3].astype('float')
    # print(data.head())

    # 处理车辆信息,基本信息中包含车辆名称(车系),款式,排量,档位类型,配置， 有数据只有车系
    data['汽车名称'] = data['车辆信息'].map(lambda x: x.split(" ")[0])

    # 计算贬值情况，新车落地价（含税）- 现在价格
    data['贬值'] = data['新车税后价/万'] - data['价格/万']
    # print(df.loc[:, ['车辆信息', '价格/万', '新车税后价/万']])
    # 清除不合理数据（二手车比新车还贵，why？）
    data.drop(data[data['贬值'] < 0].index, inplace=True)
    data.to_excel('../数据/二手车处理后数据.xlsx', encoding='utf-8', index=False)
